home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / UUPC3 / FILES_IN / DCP.H next >
Text File  |  1992-02-05  |  6KB  |  184 lines

  1. /* DCP a uucp clone. Copyright Richard H. Lamb 1985,1986,1987 */
  2. #include <stdio.h>        /* Standard UNIX  definitions */
  3.  
  4. #include "host.h"        /* Host specific definitions */
  5.  
  6. FILE * FOPEN();
  7. int CREAT();
  8.  
  9. #define SYSTEMS        "systems"
  10. #define LOGFILE        "LOGFILE"
  11. #define SYSLOG        "SYSLOG"
  12. #define SCHEDULE    "schedule"
  13.  
  14. #define MSGTIME         20
  15. #define MAXPACK         256
  16. #define MAXPACKCODE     4
  17. #define DFLPACK            64
  18.  
  19. #define PORTBUFSIZ        2048
  20.  
  21. #define ERROR    100
  22. #define EMPTY    101
  23.  
  24. #define    SLAVE    0
  25. #define    MASTER    1
  26.  
  27. #ifndef TRUE
  28. #define TRUE   (-1)
  29. #define FALSE   0
  30. #endif
  31.  
  32. /*#define SAME    0*/
  33. #define RETRY    -2
  34. #define FAILED    -1
  35. #define OK        0
  36. #define EQUAL    0
  37.  
  38.  
  39. /* L.sys field defines */
  40.  
  41. #define    FLD_REMOTE    0
  42. #define    FLD_CCTIME    1
  43. #define    FLD_DEVICE    2
  44. #define    FLD_TYPE    3
  45. #define    FLD_SPEED    4
  46. #define    FLD_PHONE    5
  47. #define    FLD_PROTO    6
  48. #define    FLD_EXPECT    7
  49. #define FLD_SEND    8
  50.  
  51. /**/
  52. typedef int    (*procref)();
  53.  
  54. typedef struct {
  55.     char    type;
  56.     procref a;
  57.     procref b;
  58.     procref c;
  59.     procref d;
  60.     procref e;
  61.     procref f;
  62.     procref g;
  63.     procref h;
  64.     procref i;
  65. } Proto;
  66.  
  67. /* the various protocols available. Add here for others */
  68. extern procref          getpkt, sendpkt, openpk, closepk, filepkt, eofpkt,
  69.                         getmsg, sendmsg, sendresp;
  70.  
  71. extern int    ggetpkt(), gsendpkt(), gopenpk(), gclosepk(), gfilepkt(), geofpkt(),
  72.                         gwrmsg(), grdmsg(), gsendresp();
  73. extern int    fgetpkt(), fsendpkt(), fopenpk(), fclosepk(), ffilepkt(), feofpkt(),
  74.                         fwrmsg(), frdmsg(), fsendresp();
  75. /*
  76. extern int    kgetpkt(), ksendpkt(), kopenpk(), kclosepk();
  77. extern int    rgetpkt(), rsendpkt(), ropenpk(), rclosepk();
  78. extern int    tgetpkt(), tsendpkt(), topenpk(), tclosepk();
  79. */
  80.  
  81. typedef enum
  82.                 { phantom,          /* Entry not fully initialized      */
  83.                   localhost,        /* This entry is for ourselves      */
  84.                   routed,           /* This entry is actually a path    */
  85.                   gatewayed,        /* This entry is delivered to via   */
  86.                                     /* an external program on local sys */
  87.                   aliasof,          /* This entry is alias of VIA system*/
  88.                   nocall,           /* real host, never called          */
  89.                   inprogress,       /* Call now active                  */
  90.                   callback_req,     /* System must call us back         */
  91.                   dial_failed,      /* Hardcoded auto-dial failed       */
  92.                   script_failed,    /* script in L.SYS failed           */
  93.                   max_retry,        /* Have given up calling this sys   */
  94.                   too_soon,         /* In retry mode, too soon to call  */
  95.                   succeeded,        /* self-explanatory                 */
  96.                   wrong_host,       /* Call out failed, wrong system    */
  97.                   unknown_host,     /* Call in cailed, unknown system   */
  98.                   wrong_time,       /* Unable to call because of time   */
  99.                   last_status }
  100.                         hostatus;
  101.  
  102. struct HostStats {
  103.       time_t ltime;              /* Last time this host was called      */
  104.       time_t lconnect;           /* Last time we actually connected     */
  105.       unsigned long calls;       /* Total number of calls to host       */
  106.       unsigned long connect;     /* Total length of connections to host */
  107.       unsigned long fsent;       /* Total files sent to this host       */
  108.       unsigned long freceived;   /* Total files received from this host */
  109.       unsigned long bsent;       /* Total bytes sent to this host       */
  110.       unsigned long breceived;   /* Total bytes received from this host */
  111.       unsigned long errors;      /* Total transmission errors noted     */
  112.       unsigned long packets;     /* Total packets exchanged             */
  113.       unsigned long bstart;      /* Bytes sent/rcvd at beginning of file*/
  114.       hostatus save_hstatus;     /* host status, as defined by hostatus */
  115.    };
  116.  
  117. typedef struct {
  118.     time_t time_secs;
  119.     char   name[40];
  120.     char   status[40];
  121.     int    failures;
  122. } status_record;
  123.  
  124. /**/
  125. extern int    pktsize;                /* packet size for this pro*/
  126. extern FILE    *logfile;                /* system log file */
  127. extern FILE    *syslog;                /* system log file */
  128. extern FILE    *fw;                   /* cfile pointer */
  129. extern char    cfile[80];              /* work file pointer */
  130. extern int    remote;                 /* -1 means we're remote*/
  131. extern int maxhops;
  132. extern int sync_timeout;
  133. extern int PacketTimeout;
  134. extern int MaxErr;
  135. extern int msgtime;
  136. extern int pktsize;         /* packet size for this protocol*/
  137. extern int xfer_bufsize;
  138. extern int    findwork;
  139. extern int xfer_problems;
  140. extern int    del_file_flag;
  141. extern char    fromfile[132];
  142. extern char    rmtfname[132];
  143. extern char    hostfile[132];        /* host version of fromfile */
  144. extern char    tofile[132];
  145. extern char    state;                  /* present state */
  146. extern int    fp;                     /* current disk file ptr */
  147. extern int    size;                   /* nbytes in buff */
  148. extern FILE    *fsys;
  149. extern char    Rmtname[20];
  150. extern char    rmtname[20];
  151. extern char gotname[20];
  152. extern char gotitfrom[BUFSIZ];
  153. extern char gotfromuser[BUFSIZ];
  154. extern char callcause[64];
  155. extern char    *cctime;
  156. extern char    proto[5];
  157. extern time_t runStartSecs;
  158. extern int    failureCount;
  159.  
  160. extern char sysline[BUFSIZ*2];
  161. extern char s_systems[64];
  162. extern char s_logfile[64];
  163. extern char s_syslog[64];
  164. extern char s_schedule[64];
  165. extern char s_statfile[64];
  166. extern char *flds[60];
  167. extern int  kflds;
  168.  
  169. extern int    debuglevel;        /* debugging flag */
  170. extern unsigned int    checksum();
  171. extern void zzz(int secs);
  172. extern char *index();
  173. extern char *rindex();
  174.  
  175. extern    char *curdir;
  176.  
  177. #ifdef Upgrade
  178. extern long int systimeout;
  179. #endif Upgrade
  180.  
  181. extern struct HostStats remote_stats;
  182. extern status_record Last;
  183.  
  184.